perm filename PROB[DOC,TOB] blob sn#010132 filedate 1972-10-15 generic text, type T, neo UTF8
00100	
00200	THE PLACES ARE DOOR,TABLE,BOX1,BOX2,OUTSIDE.
00300	
00400	THERE ARE NO OBJECTS ON THE TABLE.
00500	
00600	THERE ARE ONLY KEYS IN ONE BOX.
00700	
00800	THERE ARE ARBITRARY CONTENTS IN THE OTHER BOX.
00900	
01000	THERE ARE ONLY RED OBJECTS AT THE DOOR.
01100	
01200	THE ROBOT HOLDS ARBITRARY OBJECTS.	
01300	
01400	THE ROBOT CAN GO TO ANY PLACE BUT
01500	THE ROBOT CAN GO OUTSIDE ONLY IF THE KEY IS AT THE DOOR.
01600	
01700	THE ROBOT CAN PICKUP A RANDOM OBJECT AT THE ROBOT'S LOCATION.
01800	
01900	THE ROBOT CAN PUTDOWN ANY OBJECT HE HOLDS.
02000	
02100	THE ROBOT CAN NOT PERCEIVE.
02200	
02300	
02400	THE TASK IS TO CARRY A RED OBJECT OUTSIDE.
02500	
02600	PLEASE BEGIN.
02700	
     

00100	PROCEDURES
00200	
00300	WHEN WE NEED A SUFFICIENT CONDITION, FIND A NECESSARY CONDITION
00400	AND ASSUME IT IS SUFFICIENT
00500	
00600	WHEN WE SEE (A CANNOT B) WE SETUP AN ANTECEDENT THEOREM
00700	WHICH FAILS AT (A B).
00800	
00900	
01000	WHENEVER WE MENTION TWO DIFFERENT NAMES, WE ASSUME UNIQUE.
01100	
01200	
01300	I WILL WANT TO SET UP A SIMULATION OF THE SITUATION
01400	
01500	
01600	WE CAN REPRESENT PLACES AS
01700		(DOOR IS PLACE)
01800		(TABLE IS PLACE)
01900		(BOX1 IS PLACE)
02000		(BOX2 IS PLACE)
02100		(OUTSIDE IS PLACE)
02200	I.E., BY EXTENSION.
02300	WE HAVE MORE TROUBLE WITH (NOTHING AT TABLE)
02400		OR (ONLY KEYS AT BOXA)
02500	WE CAN TRANSLATE (ONLY KEYS AT BOXA) AS
02600	TH1	ANTE   (PICKUP OBJECT AT BOXA)⊃(ROBOT HOLDS KEY)
02700	TH2	ANTE   (PUTDOWN OBJECT AT BOXA)∧(OBJECT NOT KEY)⊃THERASE TH1
02800	TH3	CONSE  (ROBOT HOLDS KEY)←(PICKUP OBJECT AT BOXA)
02900	THAT SEEMS ARTIFICIAL.  STILL, WE MUST REPRESENT (ONLY KEYS AT BOXA)
03000	AND THE PLANNER MECHANISM MUST BE A THEOREM.
03100		(SELECT OBJECT AT BOXA)→(OBJECT IS KEY)
03200	AND WE CUSTOMARILY REPRESENT THIS AS A CONSEQUENT THEOREM.
03300	THIS BECOMES COMPLICATED IF WE PUTDOWN AN OBJECT AT BOXA, BECAUSE
03400	THEN WE MUST ERASE.  INSTEAD, WE PROBABLY WANT A STATE LABEL FOR
03500	EACH OBJECT; THEN THE THEOREMS ARE VALID ONLY FOR THE PARTICULAR STATE
03600	OF THE OBJECT.  THIS IS MY TRAJECTORIES SCHEME.
03700		(SELECT OBJECT AT BOXA STATE-A1)→(OBJECT IS KEY)
03800	WHEN WE BRING SOMETHING TO THE PLACE, THEN WE MUST MAKE A NEW STATEMENT
03900			(PUTDOWN OBJ AT BOXA)⊃(BOXA STATE STATE-A2)
04000		(SELECT OBJECT AT BOXA STATE-A2)→(OBJECT IS KEY)∨(OBJECT IS OBJ)
04100	THIS BECOMES A BIT MESSY WITH CONSEQUENT THEOREMS, SO I SUPPOSE THAT
04200	ORDINARY LISP FUNCTIONS WOULD BE GOOD.
04300	IN THAT CASE, WE MUST HAVE ANTECEDANT THEOREMS WHICH TRAP
04400	ON (PICKUP OBJECT AT LOCATION), (PUTDOWN OBJECT AT LOCATION)
04500	AND WHICH MANIPULATE THE OBJECT SETS CORRESPONDINGLY.
04600	NOW WE MUST SPELL OUT THE DATA STRUCTURE OF SETS.
04700	I NOW SUGGEST THAT I REPRESENT THEM NEARLY LIKE EXTENSION.
04800		(BOX1 BOX2 BOX3)
04900		(SET1 SET2 SET3)
05000		(ELEMENT1 SET2 ELEMENT3)
05100	WHERE WE DISTINGUISH BETWEEN ELEMENTS AND SETS BY INDICATORS ON THEIR
05200	PROPERTY LISTS, AND THEY HAVE UNIQUE NAMES (GENSYMS).
05300	IT IS PROBABLE THAT SUCH A SCHEME IS COMPLETELY OUTSIDE THE PLANNER
05400	DATA STRUCTURE AND THUS MAKES NO USE OF PLANNER.
05500	AN ALTERNATIVE WHICH MAKES SOME USE OF PLANNER IS TO HAVE SETS INVOLVED
05600	IN THE PLANNER PATTERNS, AND TO HAVE AN IDENTIFIER ON THE PROPERTY LIST
05700	OF EACH SET.
05800	
     

00100	(PLACES ARE PLACE-SET)
00200	(SETQ PLACE-SET @(DOOR,TABLE,BOX1,BOX2,OUTSIDE))
00300	
00400	(TABLE-SET AT TABLE)
00500	(SETQ TABLE-SET NIL)
00600	
00700	(BOXA-SET AT BOXA)
00800	(SETQ BOXA-SET @SPECIFIED)
00900	(DEFPROP BOXA-SET KEYS SPECIFIER)
01000	
01100	(BOXB-SET AT BOXB)
01200	(SETQ BOXB-SET @ARBITRARY)
01300	
01400	(SETQ BOX-SET @(BOX1 BOX2))
01500	(BOXA IN BOX-SET)
01600	(BOXB IN BOX-SET)
01700	
01800	
01900	
02000	(DOOR-SET AT DOOR)
02100	(SETQ DOOR-SET @SPECIFIED)
02200	(DEFPROP DOOR-SET RED SPECIFIER)
02300	
02400	(ROBOT HOLDS ROBOT-SET)
02500	(SETQ ROBOT-SET @ARBITRARY)
02600	
02700	
02800	
02900	(ROBOT CANNOT PERCEIVE)
03000	
03100	(ROBOT CAN GO TO PLACE-SET)
03200	
03300	(ROBOT CAN GO TO OUTSIDE OUT-CONDITION)
03400	(SETQ OUT-CONDITION @(ONLY IF KEY AT DOOR))
03500	
03600	(ROBOT CAN PICKUP PICKUP-SET AT ROBOT-LOCATION)
03700	
03800	(ROBOT CAN PUTDOWN PUTDOWN-SET)
03900	(SETQ PUTDOWN-SET @(ROBOT HOLDS OBJECT))
04000	
04100	(TASK IS CARRY A RED OBJECT OUTSIDE)
04200	
04300	
     

00005	SEMANTICS
00010		PLACES ARE IN SOME WORLD OR WORLDS
00015		OBJECTS ARE AT SOME PLACE(UNIQUE, OTHERWISE UNDETERMINED)
00020	
00100	(DEFPROP WORLD1 (DOOR TABLE BOX1 BOX2 OUTSIDE) PLACES)
00200	
00300	(DEFPROP TABLE (WORLD1) PLACE)
00400	(DEFPROP TABLE NIL OBJECTS)
00500	
00600	
00700	(DEFPROP DOOR (WORLD1) PLACE)
00800	(DEFPROP DOOR (RED-SET) OBJECTS)
00900	(DEFPROP RED-SET (DOOR) SET)
01000	(DEFPROP RED-SET (RED) PROPERTIES)
01100	
01200	(DEFPROP BOX1 (WORLD1) PLACE)
01300	
01400	
01500	
01600	
01800	(NULL-SET AT TABLE AT TABLE-0)
01900	(KEY-SET AT BOX-A AT BOXA-0)
02000	(RED-OBJECTS AT DOOR AT DOOR-0)
02100	(DEFPROP GO-OUTSIDE
02200		(THCONSE (ACTOR) 
02300			((THV ACTOR)GO OUTSIDE)
02350		(THPROG ()
02400			(THGOAL (KEY AT DOOR)(THTBF THTRUE))
02500			(THGOAL ((THV ACTOR) GO OUTSIDE
     

00100	(A AT B IN B0)		;INITIAL STATE, EACH PLACE HAS A STATE
00200	(B0 EQUIVALENT W0)	;EQUIVALENCE OF FRAMES
00300	
00400	WITH EACH PLACE, OR OBJECT, THERE IS A SEQUENCE OF FRAMES.
00500	SOME ARE SYNCHRONIZED TO OTHER BODY-CENTERED FRAMES.
00600	EITHER WE MUST STORE AN EVENT WITH EACH RELATED OBJECT
00700	OR WE MUST FIND THE PROBLEM GOAL AND STORE THINGS IN A
00800	MANNER THAT DEPENDS ON THE GOAL.